#!/usr/bin/env node

/**
 * 自动生成和更新网站地图脚本
 * 每天自动更新sitemap.xml，确保爬虫能够及时抓取最新内容
 */

const fs = require('fs');
const path = require('path');

// 获取当前日期
function getCurrentDate() {
    const now = new Date();
    return now.toISOString().split('T')[0];
}

// 生成博客详情页面的URL（模拟从数据库获取）
function generateBlogDetailUrls(currentDate) {
    // 模拟从数据库获取博客文章列表
    const blogPosts = [
        { id: 1, title: '电动自行车选购指南', lastModified: currentDate },
        { id: 2, title: '城市骑行安全注意事项', lastModified: currentDate },
        { id: 3, title: '自行车维护保养技巧', lastModified: currentDate },
        { id: 4, title: '环保出行新选择', lastModified: currentDate },
        { id: 5, title: '智能自行车发展趋势', lastModified: currentDate }
    ];
    
    return blogPosts.map(post => `
    <url>
        <loc>https://ubikego.com/blog-detail.html?id=${post.id}</loc>
        <lastmod>${post.lastModified}</lastmod>
        <changefreq>daily</changefreq>
        <priority>0.8</priority>
    </url>`).join('\n');
}

// 生成sitemap内容
function generateSitemap() {
    const currentDate = getCurrentDate();
    
    const sitemapContent = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
        http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">

    <!-- ========== 首页 ========== -->
    <url>
        <loc>https://ubikego.com/</loc>
        <lastmod>${currentDate}</lastmod>
        <changefreq>daily</changefreq>
        <priority>1.0</priority>
    </url>

    <!-- ========== 产品页面 ========== -->
    <url>
        <loc>https://ubikego.com/products.html</loc>
        <lastmod>${currentDate}</lastmod>
        <changefreq>daily</changefreq>
        <priority>0.9</priority>
    </url>

    <!-- ========== 博客列表页面 ========== -->
    <url>
        <loc>https://ubikego.com/blog.html</loc>
        <lastmod>${currentDate}</lastmod>
        <changefreq>daily</changefreq>
        <priority>0.9</priority>
    </url>

    <!-- ========== 博客详情页面 ========== -->
    <!-- 动态生成博客详情页面的URL -->
    ${this.generateBlogDetailUrls(currentDate)}

    <!-- ========== 关于我们页面 ========== -->
    <url>
        <loc>https://ubikego.com/about.html</loc>
        <lastmod>${currentDate}</lastmod>
        <changefreq>weekly</changefreq>
        <priority>0.6</priority>
    </url>

    <!-- ========== 联系我们页面 ========== -->
    <url>
        <loc>https://ubikego.com/contact.html</loc>
        <lastmod>${currentDate}</lastmod>
        <changefreq>weekly</changefreq>
        <priority>0.6</priority>
    </url>

    <!-- ========== 错误页面（用于SEO完整性） ========== -->
    <url>
        <loc>https://ubikego.com/404.html</loc>
        <lastmod>${currentDate}</lastmod>
        <changefreq>yearly</changefreq>
        <priority>0.1</priority>
    </url>

    <url>
        <loc>https://ubikego.com/500.html</loc>
        <lastmod>${currentDate}</lastmod>
        <changefreq>yearly</changefreq>
        <priority>0.1</priority>
    </url>

</urlset>`;

    return sitemapContent;
}

// 更新sitemap文件
function updateSitemap() {
    const sitemapPath = path.join(__dirname, '..', 'sitemap.xml');
    const sitemapContent = generateSitemap();
    
    try {
        fs.writeFileSync(sitemapPath, sitemapContent, 'utf8');
        console.log(`✅ Sitemap已更新: ${getCurrentDate()}`);
        console.log('📊 更新页面统计:');
        console.log('   • 首页 - 每日更新');
        console.log('   • 产品页面 - 每日更新');
        console.log('   • 博客列表 - 每日更新');
        console.log('   • 博客详情 (5篇文章) - 每日更新');
        console.log('   • 关于我们 - 每周更新');
        console.log('   • 联系我们 - 每周更新');
    } catch (error) {
        console.error('❌ 更新sitemap失败:', error.message);
    }
}

// 主函数
function main() {
    console.log('🚀 开始生成网站地图...');
    console.log('📅 当前日期:', getCurrentDate());
    
    updateSitemap();
    
    console.log('✅ 网站地图生成完成！');
    console.log('📈 爬虫将每天抓取以下重要页面:');
    console.log('   • 产品页面 (products.html)');
    console.log('   • 博客列表 (blog.html)');
    console.log('   • 博客详情 (blog-detail.html?id=*)');
    console.log('   • 首页 (index.html)');
}

// 如果是直接运行此脚本
if (require.main === module) {
    main();
}

module.exports = {
    generateSitemap,
    updateSitemap,
    getCurrentDate
};